package com.os.sys.mapper;

import com.os.sys.pojo.SysMenu;
import com.os.sys.service.bean.MenuBean;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;
/**
 * 如果Mapper类是通过Spring的注入方式进入到系统中的，那么要声明为@Repository
 * 如果Mapper是通过MyBatis手写的方式提取的（比如：SysUserMapper），那么就可以不作声明
 * @author Administrator
 */
@Repository
public interface SysMenuMapper {
    /**
     * 按ID查询菜单
     * @param menu_id
     * @return SysMenu
     */
	public SysMenu selectById(int menu_id);
	/**
	 * 按菜单编号查询菜单
	 * @param menu_code
	 * @return SysMenu
	 */
	public SysMenu selectByCode(String menu_code);
	
	public MenuBean selectBeanById(int menu_id);
	/**
	 * 查询所有末级结点
	 * @param paramMap
	 * @return 
	 */
	public List<SysMenu> selectMenuFin(Map<String, Object> paramMap);
	/**
	 * 依据条件参数查询
	 * @param paramMap
	 * @return
	 */
	public List<SysMenu> selectByParam(Map<String, Object> paramMap);
	
	/**
	 * 传入SQL执行查询
	 * @param sql
	 * @return
	 */
	public List<Map<String,Object>> selectBySQL(String sql);
	
	/**
	 * 取某个菜单的下级菜单
	 * @param menu_parent
	 * @return List<SysMenu>
	 */
	public List<SysMenu> selectChildmenu(int menu_parent);
	/**
	 * 查询某个菜单下级的当前最大菜单编号
	 * @param meanBean
	 * @return String
	 */
	public String selectMaxMenuCodeByParentId(MenuBean meanBean);
	
	/**
	 * 增加菜单
	 * @param sysMenu
	 * @return
	 */
	public int insert(SysMenu sysMenu);
	/**
	 * 修改菜单
	 * @param sysMenu
	 * @return
	 */
	public int update(SysMenu sysMenu);
	/**
	 * 删除菜单
	 * @param menu_id
	 * @return
	 */
	public int deleteById(int menu_id);

	//public List<SysUser> serverPage(Map<String,Object> param);
	
	//public int selectCountByParam(Map<String,Object> param);
	
	
	
}
